﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 七天入手上位机第一个项目
{
    public partial class StationControl : UserControl
    {
        // StationControl类的构造函数
        public StationControl()
        {
            InitializeComponent();
        }

        // 用于设置或获取工位名称的属性
        private string stationName = "名称";
        //这是一个特性，用于设置或获取属性的描述信息
        [Description("设置或获取工位名称")]
        //这是属性的访问修饰符，表示属性是公开的，在属性栏中可以看到
        [Browsable(true)]
        public string StationName
        {
            get { return stationName; }
            set
            {
                stationName = value;
                this.lbl_Name.Text = value;  // 更新工位名称的显示
            }
        }

        // 用于设置或获取工位启用状态的属性
        private bool stationState = false;
        [Description("设置或获取工位启用状态")]
        [Browsable(true)]
        public bool StationState
        {
            get { return stationState; }
            set
            {
                stationState = value;
                this.sw_isOpen.Checked = value;  // 更新工位状态显示
            }
        }

        // 状态改变事件
        [Browsable(true)]
        [Description("状态改变事件")]
        public event EventHandler ChangedEvent;

        // 开关状态改变时的处理方法
        private void sw_isOpen_CheckedChanged(object sender, WinformControlLibraryExtension.SwitchButtonExt.CheckedChangedEventArgs e)
        {
            stationState = this.sw_isOpen.Checked;  // 更新工位状态
            if (ChangedEvent != null)
            {
                ChangedEvent.Invoke(this, e);  // 触发状态改变事件
            }
        }
    }

}
